package edu.scau.mis.pos.service;

import edu.scau.mis.pos.domain.ProductDescription;
import edu.scau.mis.pos.domain.Sale;
import edu.scau.mis.pos.vo.CurrentProductVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author 林琛理
 * @date 2022/10/24 16:31
 */
public interface ISaleService {
    /**
     * 开始新的销售
     */
    Sale makeNewSale();

    /**
     * 实例化SaleItem
     * @param product 商品对象
     * @param quantity 数量
     */
    void makeLineItem(ProductDescription product, int quantity);

    /**
     * 结束订单商品录入
     * @return 总金额
     */
    BigDecimal endSale();

    /**
     * 订单支付
     * @param cashTendered 付款金额
     * @return 找零
     */
    BigDecimal makePayment(BigDecimal cashTendered);

    void changeQuantityOfSaleItem(String itemSn, int quantity);

    void deleteSaleItem(String itemSn);

    Sale getCurrentSaleInfo();

    List<CurrentProductVo> getCurrentProducts();


}
